/*
 * extends   jquery.1.10.2
 * name      注册页面验证。
 * author    jon
 * email     191777962@qq.com
 * */


$(function() {
    //验证表单
    var userReg = $(".userReg").Validform({
        tiptype: 3
    });
    //$.Tipmsg.tit = "Message Box";
    userReg.addRule([{
        ele: "input[name = 'username']",
        datatype: /^[\w\u4e00-\u9fa5]{3,50}$/,
        nullmsg: "请输入6-50位字符，支持中文数字及“_”组合。",
        errormsg: "请输入6-50位字符，支持中文数字及“_”组合。",
        ajaxurl: 'home/check_username'
    },{
        ele: "input[name = 'password']",
        datatype: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z_]{6,20}$/,
        nullmsg: "！密码为6-20个字符，请用英文加数字或下划线组合！",
        errormsg: "6-20位字符，仅由英文加数字或下划线组合密码!",
        sucmsg: "填写正确",
        usePlugin: {
            passwordstrength: {
                minLen: 6,
                maxLen: 20

            }
        }
    },{
        ele: "input[name = 'password_confirm']",
        datatype: "*6-20",
        recheck: "password",
        nullmsg: "请再次输入密码！",
        errormsg: "输入的密码不一致",
        sucmsg: "填写正确"
    },{
        ele: "input[name = 'email']",
        datatype: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/,
        nullmsg: "请输入一个有效的电子邮箱地址！",
        errormsg: "邮箱格式有误，请输入正确邮箱！",
        sucmsg: "填写正确",
        ajaxurl: 'home/check_email'
    },{
        ele: "input[name = 'truename']",
        datatype: "*",
        nullmsg: "请输入一个有效的真实姓名！",
        errormsg: "真实姓名有误，请输入正确的姓名！",
        sucmsg: "填写正确",
        ajaxurl: 'home/check_truename'
    },{
        ele: "input[name = 'validcode']",
        datatype: "*",
        nullmsg: "请输入验证码，不区分大小写！",
        sucmsg: "填写正确!",
        ajaxurl: 'home/checkcode?email=' //+ $('#email').val()
    },{
        ele:"input[name= 'agree']",
        datatype: "*",
        sucmsg: "通过验证！",
        nullmsg: "请同意用户使用协议！"
    },{
        ele:"input[name= 'agree']",
        datatype: "*",
        sucmsg: "通过验证！",
        nullmsg: "请同意用户使用协议！"
    }
    ]);

    //改写email时刷新code验证
    $('#email').on('change', function() {
        setCode();
    }).on('blur', function() {
        setCode();
        // 邮箱通过验证后 延迟判断是否开启发送按钮
        setTimeout(function() {
            OnCodeBtn();
        }, 1000);
    });

    //设置验证码检测条件
    function setCode() {
        userReg.addRule([{
            ele: "input[name = 'emailcode']",
            datatype: "*",
            nullmsg: "请输入验证码，不区分大小写！",
            sucmsg: "填写正确!",
            ajaxurl: 'home/checkcode?email=' + $('#email').val()
        },{
            ele:"input[name= 'agree']",
            datatype: "*",
            sucmsg: "通过验证！",
            nullmsg: "请同意用户使用协议！"
        }]);
    }

    //发送验证码按钮状态；
    function OnCodeBtn() {
        if ($("#tips").hasClass("Validform_right")) {
            $(".u-send-code").addClass("code-ture").attr("disabled", false).val('发送验证码');
        } else {
            $(".u-send-code").removeClass("code-ture").attr("disabled", true).val('发送验证码');
        }
    }

    //验证验证码是否发送成功/
    $(".u-send-code").on('click', function() {
        $(this).attr("disabled", true);
        refreshTime(60);
        $.post('home/send_code', {
                "email": $("input[name = 'email']").val()
            },
            function(data) {

                if (data.status == 'y') {
                    $(".u-send-code").parent().find(".Validform_checktip").removeClass("Validform_wrong").addClass("Validform_right").text(data.info);
                } else {
                    $(".u-send-code").parent().find(".Validform_checktip").removeClass("Validform_right").addClass("Validform_wrong").text(data.info);
                }
            }, 'json')
    });

    //防刷计时器；
    var _time = $('#codetime').val();

    //刷新计时;
    function refreshTime(time) {
        if (time > 0) {
            time--;
            $(".u-send-code").val('在' + time + '秒后再次发送').removeClass("code-ture").attr("disabled", true);
            setTimeout(function() {
                refreshTime(time);
            }, 1000);
        } else {
            OnCodeBtn();
        }
    }

    //如何计时器大于0开启防刷验证；
    if (_time > 0) {
        refreshTime(_time);
    }
    //初始判断 发送验证码按钮状态；
    OnCodeBtn();
});